package com.aspose.cells;

import java.util.ArrayList;
import java.util.HashMap;

class zakc {
   public static boolean a(ICellsDataTable var0, int var1, ImportTableOptions var2) {
      String[] var3 = var0.getColumns();
      if (var3 == null) {
         throw new CellsException(6, "Columns must be defined for ICellsDataTable");
      } else if (var3.length == 0) {
         return false;
      } else {
         int var4 = var2.getTotalColumns();
         if (var2.getColumnIndexes() != null) {
            var4 = var2.getColumnIndexes().length;
         } else if (var4 < 0) {
            var4 = var3.length;
         }

         if (var4 == 0) {
            return false;
         } else {
            if (var1 + var4 > 16383) {
               var4 = 16383 - var1 + 1;
            }

            var2.setTotalColumns(var4);
            if (var2.getColumnIndexes() == null) {
               var2.setColumnIndexes(new int[var4]);

               for(int var5 = 0; var5 < var4; var2.getColumnIndexes()[var5] = var5++) {
                  ;
               }
            } else if (var4 < var2.getColumnIndexes().length) {
               int[] var7 = new int[var4];

               for(int var6 = 0; var6 < var4; ++var6) {
                  var7[var6] = var2.getColumnIndexes()[var6];
               }

               var2.setColumnIndexes(var7);
            }

            return true;
         }
      }
   }

   static int a(ICellsDataTable var0, Cells var1, int var2, int var3, ImportTableOptions var4) {
      var1.getRows().d.a();
      var1.n();
      var1.r().n().b();
      zakq.a(var2, var3);
      if (var4 == null) {
         var4 = new ImportTableOptions();
      }

      if (!a(var0, var3, var4)) {
         return 0;
      } else {
         int[] var5 = var4.getColumnIndexes();
         int var6 = var4.getTotalRows();
         if (var6 < 0) {
            var6 = var0.getCount();
         }

         boolean var8 = var4.getInsertRows();
         RowCollection var7;
         if (var6 > -1) {
            if (var4.isFieldNameShown()) {
               ++var6;
            }

            if (var2 + var6 > 1048575) {
               var6 = 1048575 - var2 + 1;
            }

            var7 = new RowCollection(var1, var1.a(var6, 10, var4.getTotalColumns(), 5));
         } else {
            var6 = 1048575 - var2 + 1;
            var7 = new RowCollection(var1, var1.a(64, 32, 20, 5));
         }

         Row var10 = null;
         int var11 = 0;
         Object var12 = null;
         HashMap var13 = new HashMap();
         Object var14 = null;
         boolean var15 = false;
         int var16 = var4.getTotalColumns();
         Cell var9;
         int var19;
         int var34;
         if (var8) {
            var10 = var1.getRows().a(var2, true, false, false);
            int[][] var17 = (int[][])null;
            int[][] var18 = (int[][])null;
            var19 = 0;
            HashMap var20 = new HashMap();
            int var21 = var3 + var16 - 1;
            int var24;
            if (var10 != null) {
               ArrayList var22 = new ArrayList();
               ArrayList var23 = new ArrayList();

               for(var24 = 0; var24 < var10.a(); ++var24) {
                  Cell var25 = var10.getCellByIndex(var24);
                  if (var25.getColumn() < var3) {
                     com.aspose.cells.b.a.a.ze.a(var22, (Object)(new int[]{var25.getColumn(), var25.s()}));
                  } else if (var25.getColumn() > var21) {
                     com.aspose.cells.b.a.a.ze.a(var23, (Object)(new int[]{var25.getColumn(), var25.s()}));
                  } else {
                     var20.put(var25.getColumn(), var25.s());
                  }
               }

               if (var22.size() > 0) {
                  var17 = new int[var22.size()][];

                  for(var24 = 0; var24 < var22.size(); ++var24) {
                     var17[var24] = (int[])((int[])var22.get(var24));
                  }

                  var19 += var22.size();
               }

               if (var23.size() > 0) {
                  var18 = new int[var23.size()][];

                  for(var24 = 0; var24 < var23.size(); ++var24) {
                     var18[var24] = (int[])((int[])var23.get(var24));
                  }

                  var19 += var23.size();
               }
            }

            Row var32 = var10;
            var34 = var2;
            var11 = 0;
            if (var4.isFieldNameShown()) {
               var10 = var7.a(var2, var16 + var19);
               if (var32 != null) {
                  var10.a(var32);
               }

               if (var17 != null) {
                  for(var24 = 0; var24 < var17.length; ++var24) {
                     var9 = var10.b(var17[var24][0]);
                     var9.b(var17[var24][1]);
                  }
               }

               String[] var36 = var0.getColumns();

               int var35;
               for(var35 = 0; var35 < var5.length; ++var35) {
                  var9 = var10.a(var3 + var35, false, false);
                  Object var26 = var20.get(var3 + var35);
                  if (var26 != null) {
                     var9.b((Integer)var26);
                  }

                  var9.putValue(var36[var5[var35]]);
               }

               if (var18 != null) {
                  for(var35 = 0; var35 < var18.length; ++var35) {
                     var9 = var10.b(var18[var35][0]);
                     var9.b(var18[var35][1]);
                  }
               }

               ++var11;
               var34 = var2 + 1;
            }

            for(; var0.next(); ++var34) {
               if (var6 != -1) {
                  if (var11 >= var6) {
                     break;
                  }
               } else if (var34 > 1048575) {
                  break;
               }

               ++var11;
               var10 = var7.a(var34, var16 + var19);
               if (var32 != null) {
                  var10.a(var32);
               }

               if (var17 != null) {
                  for(var24 = 0; var24 < var17.length; ++var24) {
                     var9 = var10.b(var17[var24][0]);
                     var9.b(var17[var24][1]);
                  }
               }

               for(var24 = 0; var24 < var16; ++var24) {
                  var14 = var0.get(var5[var24]);
                  var15 = a(var14);
                  Object var37 = var20.get(var3 + var24);
                  var12 = var4.a(var24);
                  if (!var15 || var37 != null || var12 != null) {
                     var9 = var10.b(var3 + var24);
                     if (var37 != null) {
                        var9.b((Integer)var37);
                     }

                     a(var9, var14, var15, var12, var4, var24, var13);
                  }
               }

               if (var18 != null) {
                  for(var24 = 0; var24 < var18.length; ++var24) {
                     var9 = var10.b(var18[var24][0]);
                     var9.b(var18[var24][1]);
                  }
               }
            }

            if (var7.getCount() > 0) {
               zakk var38 = new zakk();
               var38.b = false;
               var38.a = false;
               var1.a(var2, var7.getCount(), var38);
               var1.getRows().a(-1, -1, 0, var7);
            }
         } else {
            int var27 = 0;
            if (var4.isFieldNameShown()) {
               String[] var28 = var0.getColumns();
               var10 = var1.getRows().a(var2, false, false, false);

               for(var19 = 0; var19 < var5.length; ++var19) {
                  var9 = var10.a(var3 + var19, false, true);
                  var9.putValue(var28[var5[var19]]);
               }

               ++var2;
               var11 = 1;
            }

            int var29 = var2;
            byte var31 = 0;
            int[] var30 = new int[]{var31};
            var1.getRows().a(var2, var30);
            var19 = var30[0];

            for(boolean var33 = false; var0.next(); ++var29) {
               if (var6 != -1) {
                  if (var11 >= var6) {
                     break;
                  }
               } else if (var29 > 1048575) {
                  break;
               }

               ++var11;
               var33 = false;
               if (var19 != -1 && var19 < var1.getRows().getCount()) {
                  var10 = var1.getRows().getRowByIndex(var19);
                  if (var10.getIndex() == var29) {
                     var27 += var10.a();
                     ++var19;
                     var10 = var7.a(var10);
                  } else {
                     var10 = var7.a(var29, var16);
                     var33 = true;
                  }
               } else {
                  var10 = var7.a(var29, var16);
                  var33 = true;
               }

               if (var33) {
                  for(var34 = 0; var34 < var16; ++var34) {
                     var14 = var0.get(var5[var34]);
                     var15 = a(var14);
                     var12 = var4.a(var34);
                     if (!var15 || var12 != null) {
                        var9 = var10.b(var3 + var34);
                        a(var9, var14, var15, var12, var4, var34, var13);
                     }
                  }
               } else {
                  for(var34 = 0; var34 < var16; ++var34) {
                     var14 = var0.get(var5[var34]);
                     var15 = a(var14);
                     var12 = var4.a(var34);
                     var9 = var10.a(var3 + var34, var15 && var12 == null, false);
                     a(var9, var14, var15, var12, var4, var34, var13);
                  }
               }
            }

            if (var7.getCount() > 0) {
               var1.getRows().a(var19, var19 - 1, var27, var7);
            }
         }

         return var11;
      }
   }

   static boolean a(Object var0) {
      if (var0 == null) {
         return true;
      } else {
         switch(zamo.a(var0.getClass())) {
         case 0:
         case 2:
            return true;
         default:
            return false;
         }
      }
   }

   static void a(Cell var0, Object var1, boolean var2, Object var3, ImportTableOptions var4, int var5, HashMap var6) {
      if (var0 != null) {
         if (var2) {
            var0.putValue(var3);
         } else if (var4.getConvertNumericData()) {
            if (var1 instanceof String) {
               var0.putValue((String)var1, true);
            } else {
               var0.putValue(var1);
            }
         } else {
            var0.putValue(var1);
         }

         Style var11;
         if (var4.getNumberFormats() != null && var5 < var4.getNumberFormats().length && var4.getNumberFormats()[var5] != null && !"".equals(var4.getNumberFormats()[var5])) {
            var11 = var0.o();
            var11.setCustom(var4.getNumberFormats()[var5]);
            var0.a(var11);
         } else if (com.aspose.cells.a.c.zk.a(var1)) {
            if (var4.getDateFormat() != null && !"".equals(var4.getDateFormat())) {
               var11 = var0.o();
               var11.setCustom(var4.getDateFormat());
               var0.a(var11);
            } else {
               int var7 = var0.r();
               boolean var8 = false;
               Style var9;
               if (var6.get(var7) != null) {
                  var8 = (Boolean)var6.get(var7);
               } else {
                  var9 = null;
                  WorksheetCollection var10 = var0.d.r();
                  if (var7 >= 0 && var7 <= var10.B().getCount()) {
                     var9 = var10.B().a(var7);
                  } else {
                     var9 = var10.B().a(15);
                  }

                  var8 = var9.getNumber() != 0 || var9.getCustom() != null && !"".equals(var9.getCustom());
                  var6.put(var7, var8);
               }

               if (!var8) {
                  var9 = var0.o();
                  var9.setNumber(14);
                  var0.a(var9);
               }
            }
         }

      }
   }
}
